package listeners;

import interface_grafica.*;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.swing.JOptionPane;

import banco.Queries;

import projetos.Projeto;

public class ListenersTelaEdicaoProjetos implements ActionListener {

	@Override
	public void actionPerformed(ActionEvent e) {

		TelaPrincipal frame = TelaPrincipal.getInstance();
		TelaEdicaoProjetos tela = TelaEdicaoProjetos.getInstance();
		Queries query = new Queries();

		if (e.getSource() == tela.getBtSalvar()) {

			String dataInicio = tela.getDataInicioProjeto();
			String dataFinal = tela.getDataFimProjeto();
			String descricao = tela.getResumoProjeto();
			int id = Integer.parseInt(tela.getIdProjeto());
			String nome = tela.getNomeProjeto();
			String feitores = tela.getRealizadoresProjeto();
			int status = tela.getStatus().getSelectedIndex();

			Projeto novoProjeto = new Projeto(dataInicio, dataFinal, descricao,
					nome, status, feitores, id);

			// INSERIR NO BANCO

			String tabela = "projeto";

			String valores = "nome='" + novoProjeto.getNome() + "', datainicio='"
					+ novoProjeto.getDataInicio() + "' , feitores='"
					+ novoProjeto.getFeitores() + "' , resumo='"
					+ novoProjeto.getDescricao() + "' , dataconclusao='"
					+ novoProjeto.getDataFinal() + "' , status='"
					+ novoProjeto.getStatus() + "'";

			String condicao = "codprojeto='" + id+"'";
			try {
				query.atualizar(tabela, condicao, valores);
				JOptionPane.showMessageDialog(null,
						"Atualizacao feita com sucesso!");

			}catch (SQLException e1) {
				JOptionPane.showMessageDialog(null,
						"Erro ao realizar atualizar!", "Associex",
						javax.swing.JOptionPane.ERROR_MESSAGE);
				e1.printStackTrace();
			}
			
		} else if (e.getSource() == tela.getBtRemover()) {

			String id = tela.getIdProjeto();
			String nome = tela.getNomeProjeto();

			String tabela = "projeto";
			String condicao = "nome='" + nome + "' AND codprojeto='" + id+ "'";

			try {
				query.remover(tabela, condicao);

				JOptionPane.showMessageDialog(null, "Removido");

				TelaConsultaSocio tela2 = TelaConsultaSocio.getInstance();

				String tabela2 = "socio";
				String condicao2 = "true";

				try {
					ResultSet rs2 = query.consultar(tabela2, condicao2);
					tela2.limpaDtm();
					if (rs2.next()) {
						while (rs2.next()) {

							String id2 = String
									.valueOf((rs2.getInt("codsocio")));
							String nome2 = rs2.getString("nome");
							String tipo2;

							if (rs2.getInt("tipoSocio") == 1) {
								tipo2 = "Diretor";
							} else {
								tipo2 = "Associado";
							}

							tela2.getDtm().addRow(
									new Object[] { id2, nome2, tipo2 });
						}
						tela2.setBounds(10, 11, 1063, 557);

						frame.getPanel().removeAll();
						frame.getPanel().add(tela2);
						frame.repaint();
						frame.validate();
					}

					else {
						frame.getPanel().removeAll();
						frame.repaint();
						frame.validate();
					}
				} catch (SQLException e1) {
					e1.printStackTrace();
				}

			} catch (SQLException e1) {
				JOptionPane.showMessageDialog(null, "Erro ao remover");
				e1.printStackTrace();
			}
		}

	}

}